import numpy as np
import matplotlib.pyplot as plt

# 定义 x 的取值范围
x = np.linspace(-10, 10, 400)

# 选择不同的 c 值
c_values = np.arange(1,15,2)

# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300

# 创建一个图形窗口
plt.figure(figsize=(10, 6))

# 循环遍历不同的 c 值
for c in c_values:
    # 计算 y 的值，这里把正、负分支合并计算
    y = np.sqrt(c**2 + 2*c*x)
    y_combined = np.hstack((y[::-1], -y))
    x_combined = np.hstack((x[::-1], x))
    # 绘制合并后的曲线
    plt.plot(x_combined, y_combined, label=f'c = {c}')

# 添加图例、标题和坐标轴标签
# 设置 y 轴的显示范围为 -0.8 到 0.8
plt.ylim(-10, 10)
plt.legend()
plt.title('Family of curves: $y^{2}=c^{2}+2cx$ for different c values')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)

# 显示图形
plt.show()